home *** CD-ROM | disk | FTP | other *** search
/ Merciful 2 / Merciful - Disc 2.iso / software / m / maxonc++2.dms / maxonc++2.adf / MCPLibs.lha / nostartup.c < prev    next >
C/C++ Source or Header  |  1992-06-08  |  1KB  |  41 lines

  1. // nostartup.c - Demo für Linken ohne Startup-Code
  2. //
  3. // Jens Gelhar 08.06.92
  4. //
  5. // Compileraufruf: cppc nostartup.c -gs
  6. // bzw. "Ohne Startup" im M+Plus-Linker-Requester einstellen
  7.  
  8. #include <linkerfunc.h>
  9. #include <stream.h>
  10.  
  11. // Die erste Funktion im ersten Hunk wird angesprungen:
  12.  
  13. void f(register __d0 int len, register __a0 char *par)
  14.  // In Registern d0 und a0 werden die Shell-Parameter übergeben
  15.  // Diese Register-Belegungen bremsen die Funktion übrigens gut aus,
  16.  // deshalb sollte man in dieser Funktion nicht mehr als nötig tun.
  17. {
  18.   // Wichtig, wenn Small Data-Hunks existieren, und sonst auch
  19.   // nicht verkehrt:
  20.   GetBaseReg();
  21.  
  22.   // Initialisierungen, z. B. Dos-Lib öffnen:
  23.   InitModules();
  24.  
  25.   par[len-1]=0;     // Normalerweise kein Nullbyte am Ende
  26.  
  27.   // Jetzt geht alles wie immer:
  28.   cout << "Es geht auch ohne Startup-Code!"
  29.        << "\nParameter-Länge: " << len
  30.        << "\nParameter: " << par
  31.        << "\n";
  32.  
  33.   // Programmende: Aufräumen, z. B. DosLibrary schließen:
  34.   CleanupModules();
  35.  
  36.   // "exit()" darf ohne Startup-Code nicht benutzt werden!!!
  37.   // Es ist nur so ein sinnvoller Return-Code möglich:
  38.   len = 42;
  39. }
  40.  
  41.